#pragma once

#include "shape.h"
#include "contour.h"
#include <vector>

namespace g2 {

class region : public shape {
public:
	region();
	region(const contour & outer);
public:
	const std::vector<contour> & outer() const;
	std::vector<contour> & outer();
	const std::vector<contour> & inner() const;
	std::vector<contour> & inner();
	bool inside(const vector &) const;
public:
	virtual region flatten(double h) const;
	virtual vector center() const;
	virtual box bounds() const;
	virtual void translate(const vector &);
	virtual void rotate(const vector & center, double angle);
private:
	std::vector<contour> _outer;
	std::vector<contour> _inner;
};

} // g2
